#ifndef CAMERA_H
#define CAMERA_H

#include "objects.h"



class Camera :
	public Objects
{
public:
			Camera();
			//Register class
		    static bool Register_With_ScriptEngine();

	//Grab Camera position;
			 sf::Vector2f Get_Camera() { return GetPosition(); }
			 float Get_CameraX() { return GetPosition().x; }
			 float Get_CameraY() { return GetPosition().y; }

			 void Set_Camera( sf::Vector2f );
			 void Set_CameraX( float );
			 void Set_CameraY( float );

			 void Move_Camera( sf::Vector2f  );
			 void Move_CameraX( float );
			 void Move_CameraY( float );

			  /*
			 //handle scroll offset
			 sf::Vector2f Get_Scroll() 
			 {
				 sf::Vector2f new_offset(Get_ScrollX(), Get_ScrollY());
				 return new_offset;
			 }

			 float Get_ScrollX() 
			 { 
				 if((!canScroll_Left() )|| (!canScroll_Right()))
				 {
					 return 0;
				 }else{

					 return scroll_pos.x; 
				 }
			 }
			 float Get_ScrollY() 
			 { 
				if((!canScroll_Up() )|| (!canScroll_Down()))
				 {
					 return 0;
				 }else{

					 return scroll_pos.y; 
				 }
			 }
			 */
			// void Set_ScrollX( float sx) { scroll_pos.x = sx; }
			// void Set_ScrollY( float sy) { scroll_pos.y = sy; }

			 //checks to see if we an scroll
			 bool canScroll_Left();
			 bool canScroll_Right();
			 bool canScroll_Up();
			 bool canScroll_Down();
private:
	 //Camera Scroll
			 sf::Vector2f scroll_pos;

};

extern Camera Cam;

#endif